package com.qa.service;

import com.qa.common.result.Result;
import com.qa.pojo.dto.UserRegisterDTO;
import com.qa.pojo.entity.User;

/**
 * @author 徐
 */
public interface UserService {

    /**
     * 根据邮箱获取用户
     *
     * @param mail 邮箱
     * @return 用户User
     */
    User getUserByMail(String mail);

    /**
     * 用户登录
     *
     * @param user 用户
     * @return Result
     */
    Result login(User user);

    /**
     * 用户登出
     *
     * @return Result
     */
    Result logout();

    /**
     * 用户注册
     *
     * @param userRegisterDTO 用户注册DTO
     * @return Result
     */
    Result register(UserRegisterDTO userRegisterDTO);

    /**
     * 发送验证码
     *
     * @param mail 邮箱
     * @return Result
     */
    Result sendCode(String mail);

    /**
     * 修改昵称
     *
     * @param nickname 昵称
     * @return Result
     */
    Result changeNickname(String nickname);
}
